1. Field of the Invention
The invention relates to the field of computer systems, and more specifically, to computational workload management in a computerized system.
2. Description of the Related Art
In today's computerized systems it is necessary for many applications to execute simultaneously. Workload management is thus necessary to harmonize the concurrent execution of such applications. Workload management is needed in several places.
First, it is needed close to the processor level. Here, the operating system typically manages execution of application software. Its central component, i.e., the kernel, is the bridge between applications and data processing carried out at the hardware level. Its main task is to allow for the execution of concurrent applications. To run an application, a kernel typically sets up an address space for the application, loads the application's code into memory, sets up a stack for the program and starts its execution.
Most operating system platforms provide basic job scheduling and process scheduling capabilities, respectively allowing for submission of executions and optimally assigning processes (i.e., instances of computer programs being executed) to run on available CPUs, e.g., to keep them as busy as possible.
For example, in IBM® mainframes, the so-called Workload Manager (WLM) is a base component of the MVS/ESA mainframe operating system and its successors. It controls the access to system resources for the work executing on the operating system.
Also, when several computing units share some workload, workload management is again needed. For example, in an asynchronous client/server network including several servers, each server may be capable of satisfying a client's request, such as to serve a client's request more quickly (if a given server is busy, a request can be forwarded on to another server). In that case, a workload management unit provided on the client side can make a decision as to which server to assign a particular request. Similarly, workload management units may be needed on the server side.
In most cases, workload management is designed to optimize speed, execution time, throughput, etc., so as to achieve the best possible system responsiveness. It usually takes into account the resource capabilities and possibly other constraints, e.g., given rules or company policies, in order to satisfy given business goals, etc.
Besides, systems are known from US 2009/0216387 A1, which allow control of loads coupled to an electric energy or power grid within corresponding ranges of load values in response to one or more factors, such as management of variability in production of renewable energy. In more detail, loads may be controlled in response to an indication of balance between available power and loads and/or in response to new loads and/or grid disconnections, and may be controlled repeatedly over time to adjust a sum load in response to changes in one or more of balance between available power and loads, new loads, and grid disconnections. A load may be repeatedly adjusted over time to provide an electrical power requirement within a time frame while accommodating at least a portion of variations in the balance between available electric power and load.
U.S. Pat. No. 7,519,843 discloses methods and systems for controlling the clock speed of a processor. One implementation involves receiving a real-time precision signal representing available power from a power supply output, monitoring said real-time precision signal, and dynamically adjusting the clocking speed of the processor based on the monitored signal for dynamic processor speed throttling based on available power. The processor is clocked at the maximum speed that matches the maximum output power available from the power supply, and the processor clock frequency is adjusted up or down continuously to always maximize processor performance based on available power at the system level.